package com.qfjy.homeWork.fengzhenghui;

/**
 * @Author 小白
 * @Date 2021-11-20 19:24
 */

import java.util.ArrayList;

/**
 * 抽象主题
 * 特点：
 *      1、有一个 ArrayList 存放观察者们。
 *      2、有一个主题状态或信息。
 *      3、有一个通知方法。
 *      4、set方法设置主题状态，当调用set方法时，
 * */
public class Subject {
    /*存放观察者的数组*/
    ArrayList<Observer> obList=new ArrayList<>();
    /*主题的状态或信息*/
    private String status;
    /*主题状态或信息的改变，*/
    /*添加观察者*/
    public void addOb(Observer observer){
        obList.add(observer);
    }
    public void setStatus(String status) {
        this.status = status;
        //调用通知方法，通知所有观察者
        notifyAllObservers(this.status);
    }
    /*通知观察者方法*/
    private void notifyAllObservers(String status){
        for(Observer ob : obList){
            ob.update(status);
        }
    };
}
